﻿<html>
<title> Ngày Tháng Năm</title>
<FORM METHOD = POST ACTION="">	
<center><h1><b><font color="blue" size=20>Ngày Tháng Năm <hr width =30%></font></h1></u>
  <marquee><font color="lavender" size=5 design by group  2</font> </marquee>
      <br>
   <b><i><font color= "blue"> Ngày:</font></i></b>
   <INPUT  TYPE= "char" NAME ="a" SIZE="15" placeholder="nhập ngày ở đây">
   <b><i><font color= "blue">Tháng:</font></i></b>
   <INPUT  TYPE= "char" NAME ="b" SIZE="15"placeholder="nhập tháng ở đây">
   <b><i><font color= "blue"> Năm:</font></i></b>
   <INPUT  TYPE= "char" NAME ="c" SIZE="15"placeholder="nhập năm ở đây">
   <b><i><font color= "blue">Số N:</font></i></b>
   <INPUT  TYPE= "char" NAME ="d" SIZE="15"placeholder="nhập số N ">
    <br><br>
   <input type="submit" value="Kiểm tra" name="Xử lý"  />
   <input type="reset"  value ="Xóa" name ="Xóa"/>
   <font color="valender" size="30">
   <br><br>
 <hr width =50%>

 <?php
 if(isset($_POST["a"])&&isset($_POST["b"])&&isset($_POST["c"])&&isset($_POST["d"]))
 {
       $a=$_POST["a"];
	   $b=$_POST["b"];
	   $c=$_POST["c"];
	   $d=$_POST["d"];
	         if(is_numeric($a)!=1|| is_numeric($b)!=1||strlen($c)!=4||$c>2050 || $c<1900 || $a==""||$b==""||$c==""||$a<=0||$a>31||$b<=0||$c<=0||$b>12||is_numeric($d)!=1)
				 {
			           echo "<br>Sai: Các giá trị of if đầu tiên";
					    return;
				 }
	class ngay_thang_nam 
      {
           public $a;
           public $b;		   
	       public $c;
	       public    function  __construct($ngay,$thang,$nam )
		      {
			       $this->a=$ngay;
				   $this->b=$thang;
				   $this->c=$nam;
				   echo "Ngày bạn nhập vào :";
				   echo $this->a."/".$this->b."/".$this->c;
				   
			  }
			         public    function cong($d)
			  {  
			      $this->d=$d;							   
					echo "<br>Ngày tháng năm đã cộng vào: ";
					echo ($this->a+$this->d)."/".($this->b+$this->d)."/".($this->c+$this->d);					
			   } 
			public    function ktra_cong($d)
			    {           
				             $this->d=$d;			  
       // Xét ngày cho tháng 2 nhuận	
			       $xn=($this->c+$this->d)%4;$ngay=$this->a+$this->d;$thang=$this->b+$this->d;$nam=$this->c+$this->d;
				  if($thang<=0||$thang>12||$ngay<=0||$ngay>31||$nam<1900||$nam>2050)
				    {
					   echo "<br>Sai:Không hợp lệ về giới hạn";return;
					}
	             if($thang==2&&$xn==0&&$ngay>29)
	                { 
		               echo "<br>Sai:Không thể có ngày >29 khi tháng 2 đó không nằm trong năm nhuận ";
			            return;
		            }
	  // xét ngày cho tháng 2 ko nhuận
                 if($ngay>28 && $thang==2&&$xn!=0)
	                {		   
	                    echo "<br>Sai:Không có ngày >28 trong tháng khi năm đó ko nhuận";
	                    return;
					}
		// xét các tháng 31 ngày				
				 if(($ngay>31 )&& (($thang)==1 || $thang==3 || $thang==5 || $thang==7|| $thang==8 || $thang==10 || $thang==12))
					{  
						echo "<br> Sai liên quan đến các tháng có 31 ngày";
						return;	      
			        }
	   // xét các tháng 30 ngày		     
	             if(($ngay>30 )&& ($thang==4 || $thang==6 || $thang==9 || $thang==11))
					{  
						echo "<br>Sai liên quan đến các tháng có 30 ngày";
						return;       
			        }  
				}
		    public    function  tru($d)
			    {    
						$this->d=$d; 
						    echo "<br>Ngày tháng năm đã trừ ra: ";
				            echo ($this->a-$this->d)."/".($this->b-$this->d)."/".($this->c-$this->d);
			    } 
             public   function ktra_tru($d)
			  {   $this->d=$d;
			      $ngay=$this->a-$this->d;
				  $thang=$this->b-$this->d;
				  $nam=$this->c-$this->d;
					 if($ngay<=0||$thang<=0)
				     {
					      echo "<br>Sai Kết quả : Ngày, tháng <=0";
					      return;
					 }
			            $xn=($this->c)%4;
	                if($thang==2&&$xn==0&&($ngay<=29))
	                  { 
						   echo "<br>Ngày Tháng Năm đã trừ ra: "; 
		                   echo $ngay."/".$thang."/".$nam;
			               return;
		              }
	  // xét ngày cho tháng 2 ko nhuận
                     if($ngay>28 && $thang==2)
	                   {		   
	                       echo "<br> Sai: Tháng 2 không nhuận thì ko thể có ngày >28";
	                       return;
					   }
		// xét các tháng 31 ngày				
					 if(($this->a>31 )&& ($thang==1 or $thang==3 or $thang==5 or $thang==7|| $thang==8 or $thang==10 or $thang==12))
					    {  
						    echo "<br>Sai liên quan đến các tháng có 31 ngày";
						    return;	  
			            }
	   // xét các tháng 30 ngày		     
	                 if(($this->a>30 )&& ($thang==4 or $thang==6 or $thang==9 or $thang==11))
					    {  
						    echo "<br>Sai liên quan đến các tháng có 30 ngày";
						    return;  
			            }        
			  }
     }
$xuat=new ngay_thang_nam($a,$b,$c);
echo "<br>";
$xuat->tru($d);$xuat->ktra_tru($d);
$xuat->cong($d);$xuat->ktra_cong($d);
}
?>
</font>
</html>